package cn.lg.soar.database.util;

import cn.lg.soar.common.model.IPageQuery;
import cn.lg.soar.common.model.PageResult;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

/**
 * 分页工具
 * @author luguoxiang
 * @date 2022/4/30
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
public interface PageUtils {


    static <T> IPage<T> toPage(IPageQuery pageQuery) {
        if (IPageQuery.QueryType.list.equals(pageQuery.getQueryType())) {
            return new Page<>(pageQuery.getPageNo(), pageQuery.getPageSize(), false);
        }
        return new Page<>(pageQuery.getPageNo(), pageQuery.getPageSize());
    }

    static <T> PageResult<T> toPageResult(IPage<T> page) {
        PageResult<T> result = new PageResult<>(page.getTotal(), page.getRecords());
        result.setPageNo((int) page.getCurrent());
        result.setPageSize((int) page.getSize());
        return result;
    }

}
